// 10. 封装[首页]相关的API:
import type { BannerItem, CategoryItem, HotItem, GuessItem } from '@/types/home' // 10.5 | 12.5 | 14.5 | 16.7
import type { PageResult, PageParams } from '@/types/global.d.ts' // 16.5 | 18.9
import { http } from '@/utils/http.ts'

/**
 * 10.1 首页-广告区域-小程序
 * @param distributionSite 广告区域展示位置（投放位置 投放位置，1为首页，2为分类商品页） 默认是1
 */
export const getHomeBannerAPI = (distributionSite = 1) => {
  // 细节10: 四种接口属性名, 是以数组包裹的, 因此要加后缀---'[]' // 10.5同步
  return http<BannerItem[]>({
    method: 'GET',
    url: '/home/banner',
    data: {
      distributionSite,
    },
  })
}

/**
 * 12. 首页-前台分类-小程序
 */
export const getCategoryMutliAPI = () => {
  return http<CategoryItem[]>({
    method: 'GET',
    url: '/home/category/mutli',
  })
}

/**
 * 14. 首页-热门推荐-小程序
 */
export const getHotMutliAPI = () => {
  return http<HotItem[]>({
    method: 'GET',
    url: '/home/hot/mutli',
  })
}

/**
 * 16. 猜你喜欢-小程序
 */
// 细节15: 为避免新添加上的 形参 后, 其他地方调用接口没传参, 会报错, 因此要加上可选符号 "?"
export const getHomeGoodsGuessLikeAPI = (data?: PageParams) => {
  return http<PageResult<GuessItem>>({
    method: 'GET',
    url: '/home/goods/guessLike',
    data, // 细节16: 小程序中, 不管是get还是post请求, 统一都是用 "data"
  })
}
